class Programa:
    #INICIALIZACION
 
    #constructor 
    def __init__(self, name, listInstr=[]):
        self.codigo = self.expandirListaIntrucciones(listInstr)
        self.name = name # para identificar un programa del otro. Se imprime dicho valor para identificarlos
  
###############################################################################################################
  
    #METODOS
    def expandirListaIntrucciones(self, lista=[]):
        # La list pasada por parametro se refiere a las instrucciones que tendra el programa. 
        # A cada instruccion la expando un determinado numero de veces (segun te diga la misma instruccion)
        nuevaLista = []
        for i in lista: nuevaLista.extend(i.expandirInstruccion())
        return nuevaLista
    
    def lenCodigo(self):
        return len(self.codigo)
    
    #GET&SET                  
    def getCodigo(self):
        return self.codigo
    def getName(self):
        return self.name